package com.heyue.demo.arithmetic.bitSerach;

import java.util.Arrays;

/**
 * @author fenghe
 * @date 2022/2/23 7:50
 */
public class BinarySearch {

    public static void main(String[] args) {
        int arr[] = {1, 43, 4, 23, 534, 546, 12, 23, 344};
        Arrays.sort(arr);
        System.err.println(Arrays.toString(arr));
        System.err.println(getValue(arr, 534));
    }

    public static int getValue(int[] arr, int value) {
        // 开始位置
        int start = 0;
        // 结束位置
        int end = arr.length - 1;

        while (start <= end) {
            int midIndex = (start + end) / 2;
            if(arr[midIndex] == value) {
                return midIndex;
            }
            if(arr[midIndex] < value) {
                // 目标值在后半部分
                start = midIndex + 1;
            }
            if(arr[midIndex] > value) {
                // 目标值在前半部分
                end = midIndex - 1;
            }
        }
        return -1;
    }
}
